﻿// owner 蒋家伟

#pragma once
#include "Office_home.h"

namespace jsdk
{
    // word 操作基类
    // 当前只提供从word中提取表格数据
    class OFFICE_EXPORT IWordReader
    {
    public:
        virtual ~IWordReader() {}

        // 创建一个通过word 文件地址创建一个操作word的对象
        static OwnerPtr<IWordReader> create();

        /// \ brief 打开一个Word文档
        virtual bool openDocument(const std::wstring& fileName) = 0;

        /// \ brief  打开表格单元
        /// \ in tableIndex 第几个表格，从1开始
        virtual bool openTable(uint64_t tableCount) = 0;

        /// \ brief 获取openTable对应表格的单元格数据
        /// \ note : 如果打开失败则无法获取对应的数据 行列值从1开始
        /// \ in 通过行列值获取对应的单元格数据指针，如果越界则为空
        /// \ out res 目标值
        /// \ return true 获取失败
        virtual bool getCellData(uint64_t row, uint64_t col, std::wstring& res) = 0;

        /// \ brief 获取word中表格的数量
        /// \ return 表格的数量
        virtual uint64_t getTableCount() = 0;
    };
}